package com.lvtn.adsonandroid;

import org.json.JSONException;
import org.json.JSONObject;

import com.lvtn.adsonandroid.RegisterActivity.UserRegisterTask;

import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.annotation.TargetApi;
import android.app.Activity;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Build;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
//import android.util.Log;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.View;
import android.view.inputmethod.EditorInfo;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

/**
 * Activity which displays a login screen to the user, offering registration as
 * well.
 */
public class ChangePasswordActivity extends Activity {
	
	
	private String oldpass;
	private String newpass;
	private String repass;
	private String mPhone;
	private String mAddress;

	// UI references.
	private EditText old;
	private EditText newpassword;
	private EditText renew;
	//private EditText mPhoneView;
	//private EditText mAddressView;
	//private View mRegisterFormView;
	//private View mRegisterStatusView;
	private TextView e1;
	private TextView e2;
	String email;
	
	//private static String KEY_SUCCESS = "success";
	private ChangePassTask mAuthTask = null;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);

		setContentView(R.layout.activity_change_password);

		// Set up the register form.
		old = (EditText) findViewById(R.id.editText1);
		//mEmail = getIntent().getStringExtra(EXTRA_EMAIL);
		newpassword = (EditText) findViewById(R.id.editText2);
		//.setText(mEmail);
		renew = (EditText) findViewById(R.id.editText3);
		
		e1 = (TextView) findViewById(R.id.error1);
		Log.d("aaaa","ttttttttttttttttttt");
		Intent intent = getIntent();
		email = intent.getStringExtra(ManageActivity.EXTRA_MESSAGE);
		Log.d("aaaa",email);
		Button b =(Button) findViewById(R.id.butchange);
		b.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				attempt();
			}
		});
		
	}


	/**
	 * Attempts to sign in or register the account specified by the login form.
	 * If there are form errors (invalid email, missing fields, etc.), the
	 * errors are presented and no actual login attempt is made.
	 */
	public void attempt() {
		//if (mAuthTask != null) {
		//	return;
		//}

		// Reset errors.
		//mEmailView.setError(null);
		//mPasswordView.setError(null);
        
		// Store values at the time of the register attempt.
		oldpass = old.getText().toString();
		newpass = newpassword.getText().toString();
		repass = renew.getText().toString();
		Log.d("aaaa","hhhhhhhhhhhhhhhhhhhhhh");
		//mPhone = mPhoneView.getText().toString();
		//mAddress = mAddressView.getText().toString();
		
		boolean cancel = false;
		//View focusView = null;

		// Check for a valid password.
		if (TextUtils.isEmpty(oldpass)) {
			e1.setText("Bạn phải điền chính xác mật khẩu");
			//focusView = e1;
			cancel = true;
		}
		if (TextUtils.isEmpty(newpass)) {
			e1.setText("Bạn chưa điền mật khẩu mới");
			//focusView = e1;
			cancel = true;
		} else if (newpass.length() < 8 || repass.length() <8) {
			e1.setText("Mật khẩu mới phải lớn hơn 8 kí tự");
			//focusView = e1;
			cancel = true;
		}
		else if (!(newpass.equals(repass)))
		{   e1.setText("Nhập lại chính xác mật khẩu");
		//focusView = e1;
		cancel = true;
		}

		// Check for a valid email address.
		
		if (!cancel) {
			// There was an error; don't attempt register and focus the first
			// form field with an error.
			//focusView.requestFocus();
		 
			// Show a progress spinner, and kick off a background task to
			// perform the user login attempt.
			//mRegisterStatusMessageView.setText(R.string.register_progress_registering);
			//showProgress(true);
			mAuthTask = new ChangePassTask();
			mAuthTask.execute((Void) null);
		}
	}

	/**
	 * Shows the progress UI and hides the login form.
	 */
	/*@TargetApi(Build.VERSION_CODES.HONEYCOMB_MR2)
	private void showProgress(final boolean show) {
		// On Honeycomb MR2 we have the ViewPropertyAnimator APIs, which allow
		// for very easy animations. If available, use these APIs to fade-in
		// the progress spinner.
		if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR2) {
			int shortAnimTime = getResources().getInteger(
					android.R.integer.config_shortAnimTime);

			mRegisterStatusView.setVisibility(View.VISIBLE);
			mRegisterStatusView.animate().setDuration(shortAnimTime)
					.alpha(show ? 1 : 0)
					.setListener(new AnimatorListenerAdapter() {
						@Override
						public void onAnimationEnd(Animator animation) {
							mRegisterStatusView.setVisibility(show ? View.VISIBLE
									: View.GONE);
						}
					});

			mRegisterFormView.setVisibility(View.VISIBLE);
			mRegisterFormView.animate().setDuration(shortAnimTime)
					.alpha(show ? 0 : 1)
					.setListener(new AnimatorListenerAdapter() {
						@Override
						public void onAnimationEnd(Animator animation) {
							mRegisterFormView.setVisibility(show ? View.GONE
									: View.VISIBLE);
						}
					});
		} else {
			// The ViewPropertyAnimator APIs are not available, so simply show
			// and hide the relevant UI components.
			mRegisterStatusView.setVisibility(show ? View.VISIBLE : View.GONE);
			mRegisterFormView.setVisibility(show ? View.GONE : View.VISIBLE);
		}
	}*/

	/**
	 * Represents an asynchronous login/registration task used to authenticate
	 * the user.
	 */
	public class ChangePassTask extends AsyncTask<Void, Void, Boolean> {
		@Override
		protected Boolean doInBackground(Void... params) {
			// TODO: attempt authentication against a network service.
            UserFunctions user=new UserFunctions();
            JSONObject json=user.changepass(oldpass, newpass, email);
			try {
				if(json.getString("success")!= null){
					// receive response
					String result=json.getString("success");
					if(Integer.parseInt(result)==1){
						return true;
					}
					else return false;
				}
				// Simulate network access.
				//Thread.sleep(2000);
			} catch (JSONException e) {
				return false;
			}

		/*	for (String credential : DUMMY_CREDENTIALS) {
				String[] pieces = credential.split(":");
				if (pieces[0].equals(mEmail)) {
					// Account exists, return true if the password matches.
					return pieces[1].equals(mPassword);
				}
			}*/

			// TODO: register the new account here.
			return true;
		}

		@Override
		protected void onPostExecute(final Boolean success) {
			mAuthTask = null;
			//showProgress(false);

			if (success) {
				//Intent main=new Intent(getApplicationContext(),MainActivity.class);
				//main.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
				//startActivity(main);
				Toast.makeText(getApplicationContext(),"Đổi mật khẩu thành công.", Toast.LENGTH_LONG).show();						
				finish();
				//finish();
			} else {
				//mPasswordView
					//	.setError(getString(R.string.error_incorrect_password));
			//	mPasswordView.requestFocus();
			}
		}

		@Override
		protected void onCancelled() {
			mAuthTask = null;
			//showProgress(false);
		}
	}
}
